gl area: Avoid trivialities
authorMatthias Clasen <mclasen@redhat.com>
Wed, 17 Jan 2018 19:43:50 +0000 (14:43 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 17 Jan 2018 19:43:50 +0000 (14:43 -0500)
If we have zero pixels, no need to snapshot anything,
and produce GL errors while doing so.

gtk/gtkglarea.c

index d93edd0c018a6a433938b06670d2d96d09d21725..7c1452150a48b6695dd19a921c80f5a437c1b4fe 100644 (file)
@@ -582,6 +582,13 @@ gtk_gl_area_snapshot (GtkWidget   *widget,
   int w, h, scale;
   GLenum status;
 
+  scale = gtk_widget_get_scale_factor (widget);
+  w = gtk_widget_get_width (widget) * scale;
+  h = gtk_widget_get_height (widget) * scale;
+
+  if (w == 0 || h == 0)
+    return;
+
   if (priv->error != NULL)
     {
       gtk_gl_area_draw_error_screen (area,
@@ -603,10 +610,6 @@ gtk_gl_area_snapshot (GtkWidget   *widget,
  else
    glDisable (GL_DEPTH_TEST);
 
-  scale = gtk_widget_get_scale_factor (widget);
-  w = gtk_widget_get_width (widget) * scale;
-  h = gtk_widget_get_height (widget) * scale;
-
   status = glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT);
   if (status == GL_FRAMEBUFFER_COMPLETE_EXT)
     {
@@ -647,7 +650,7 @@ gtk_gl_area_snapshot (GtkWidget   *widget,
     }
   else
     {
-      g_warning ("fb setup not supported");
+      g_warning ("fb setup not supported (%x)", status);
     }
 }